// AMD require.js => 专注于服务器和客户端都能使用
// 缺点：预先执行，如果一个模块依赖10个甚至更多，则每次使用模块都会去执行一遍，导致性能消耗
// define(func) 定义模块 / require([module...], callback) => 全局引入
// 缺点：定义模块时，需要把依赖的模块都要放到数组里，显得很臃肿
// 使用define(function(){}) require([module...], callback) => 按需引入
// 缺点：可以解决上面臃肿的问题，但问题也有，每执行一次依赖中的方法时，都要实时去下载，用户体验不好
// 优化：define(function(require,exports,module){}) require([module...], callback) => 按需引入
// 但问题依旧没有解决

// CMD sea.js => 专注于web服务端
// define(function(require, exports, module){})
// 解决引用臃肿的问题,但没解决预先下载的问题
// require.async(module)
// 解决的预先下载的问题，异步，不会影响程序执行